home *** CD-ROM | disk | FTP | other *** search
/ Delphi 2.0 - Programmer's Utilities Power Pack / Delphi 2.0 Programmer's Utilities Power Pack.iso / e_to_l / hugear10 / hugear.txt next >
Text File  |  1996-09-15  |  4KB  |  125 lines

  1. HugeArray VBX, Version 1.0, Copyright (c) 1995, Martin Bryant, All Rights Reserved
  2.  
  3. Introduction
  4. ------------
  5. The HUGEAR.VBX file is a custom control suitable for use with such programming
  6. languages as Visual Basic, Visual C++ and Delphi. It allows programmers to use
  7. 'huge' arrays (>64K in size) without resorting to the intricacies of the
  8. Windows API.
  9.  
  10. Shareware Notice
  11. ----------------
  12. HugeArray VBX is shareware. You are welcome to use it for a trial period but if
  13. you continue to use it then please register and support the shareware concept.
  14. You may freely copy/distribute the shareware version as long as you make no
  15. charge for it. If you register, then you may use it in commercial products with
  16. no royalty fee. Thank you for trying HugeArray VBX!
  17. You can register by sending £5 sterling or equivalent foreign currency (cash
  18. preferred!) to Martin Bryant, 71 Hunstanton Drive, Brandlesholme, Bury,
  19. Lancashire BL8 1XH, England.
  20. Registered users receive free updates and a full list of our other products.
  21. Constructive comments/criticisms welcome at the above address or email
  22. martinbr@colossus.demon.co.uk
  23.  
  24. Compatibility
  25. -------------
  26. HUGEAR.VBX is compatible with level 1 VBX controls.
  27.  
  28. Appearance
  29. ----------
  30. When added to a program the control appears in the toolbox as a 'huge' letter
  31. 'H'. It is non-sizable on a form and is invisible at run-time.
  32.  
  33. Properties
  34. ----------
  35. In addition to the standard properties of Name, Index, Left and Top it also
  36. has the following custom properties...
  37.  
  38. About (read only)
  39. Gives version information.
  40.  
  41. ArraySize
  42. Defines the number of elements (NOT the number of bytes) in the array.
  43. e.g. HugeArray1.ArraySize = 1000000
  44. will define the array to have one million elements.
  45.  
  46. ArrayPointer (read only/run time only)
  47. Returns a pointer (as a Long) to the first byte of the array. This may be
  48. useful if you need to pass the address of the array to another procedure.
  49.  
  50. ElementSize
  51. Defines the number of bytes per array element.
  52. e.g. HugeArray1.ElementSize = 2
  53. will define each element to have 2 bytes.
  54. Common VB data types have the following sizes:- Integer(2), Long(4), Single(4),
  55. Double(8), Currency(8).
  56.  
  57. Element
  58. Specifies the array element to read/write.
  59. e.g. HugeArray1.Element = 999
  60. tells the control that the next read/write will be from/to element number 999.
  61. (Note that the array is 0-based, so the first element is numbered 0.)
  62.  
  63. DataPointer
  64. Points to a program variable to/from which to write/read one elements data.
  65. e.g. Dim i As Integer
  66.      HugeArray1.DataPointer = Lstrcpy(i,i)
  67. tells the control that the next read/write will be into/out of variable i.
  68. Note: the Lstrcpy function needs to be defined thus...
  69. Declare Function Lstrcpy Lib "kernel" (p1 As Any, p2 As Any) As Long
  70.  
  71. Action (write-only/run-time only)
  72. Set to a value to perform the following tasks...
  73. 0 - allocate memory for the array
  74. 1 - deallocate memory for the array
  75. 2 - read an element
  76. 3 - write an element
  77. 4 - initialise whole array
  78.  
  79. Error (read-only/run-time only)
  80. May return an error number as follows...
  81. 0 - no error
  82. 1 - tried to allocate memory before deallocating previously allocated memory
  83. 2 - Windows could not allocate the requested memory
  84. 3 - tried to deallocate memory when none had been allocated
  85. 4 - tried to read/write element when no memory had been allocated
  86.  
  87.  
  88. The following code segment creates a huge array of one million integers,
  89. initialises each element to -99, sets the 999999th element to 5, reads back and
  90. displays the last 3 elements, and finally deallocates the memory.
  91.  
  92.  
  93. Dim i As Integer
  94.  
  95. hugearray1.ArraySize = 1000000 'one million elements
  96. hugearray1.ElementSize = 2 '2 bytes per element
  97. hugearray1.Action = 0 'allocate 2 millions bytes of memory for array
  98.  
  99. i = -99 'initialise whole array to -99
  100. hugearray1.DataPointer = Lstrcpy(i, i)
  101. hugearray1.Action = 4
  102.  
  103. i = 5 'set 999,999th element to 5
  104. hugearray1.Element = 999999 - 1 'compensate for 0-base
  105. hugearray1.Action = 3
  106.  
  107. hugearray1.Element = 999998 - 1 'display last three elements
  108. hugearray1.Action = 2
  109. MsgBox i & ""
  110. hugearray1.Element = 999999 - 1
  111. hugearray1.Action = 2
  112. MsgBox i & ""
  113. hugearray1.Element = 1000000 - 1
  114. hugearray1.Action = 2
  115. MsgBox i & ""
  116.  
  117. hugearray1.Action = 1 'deallocate memory
  118.  
  119.  
  120. The default Name property prefix and class name is 'HugeArray'.
  121.  
  122. Events
  123. ------
  124. The control has no pre-defined events.
  125.